package cn.framelife.rainbow.db.entity;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 生成类所需要的相关属性
 * 
 * @ClassName: ClazzProperty
 * @author 潘广伟 p_3er@qq.com
 * @date 2013年12月5日 下午3:02:10
 * 
 */
public class ClazzProperty {
	/**
	 * 项目名
	 */
	private String projectName;
	/**
	 * 包路径
	 */
	private String packageURL;
	/**
	 * 引用
	 */
	private Set<String> imports;
	/**
	 * 类注解(用于配置)
	 */
	private String classAnnotation;
	/**
	 * 类名
	 */
	private String className;
	/**
	 * 表的注释，用于菜单栏显示
	 */
	private String classComment;
	/**
	 * 类实现的接口名
	 */
	private String interfaceName;
	/**
	 * 类或接口中的泛型类
	 */
	private String entityName;
	/**
	 * 类或接口中的泛型主键类型
	 */
	private Type pkType;
	/**
	 * 实体类中的属性
	 */
	private List<Property> properties;
	/**
	 * 类中只有一个属性的时候
	 */
	private Property property;
	/**
	 * 类的数据表所有的外建
	 */
	private Map<String, ForeignKey> fks;
	
	public Map<String, ForeignKey> getFks() {
		return fks;
	}

	public void setFks(Map<String, ForeignKey> fks) {
		this.fks = fks;
	}

	public String getEntityName() {
		return entityName;
	}

	public void setEntityName(String entityName) {
		this.entityName = entityName;
	}

	public Type getPkType() {
		return pkType;
	}

	public void setPkType(Type pkType) {
		this.pkType = pkType;
	}

	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	public String getPackageURL() {
		return packageURL;
	}

	public void setPackageURL(String packageURL) {
		this.packageURL = packageURL;
	}

	public Set<String> getImports() {
		return imports;
	}

	public void setImports(Set<String> imports) {
		this.imports = imports;
	}

	public String getClassAnnotation() {
		return classAnnotation;
	}

	public void setClassAnnotation(String classAnnotation) {
		this.classAnnotation = classAnnotation;
	}

	public String getClassName() {
		return className;
	}

	public void setClassName(String className) {
		this.className = className;
	}

	public List<Property> getProperties() {
		return properties;
	}

	public void setProperties(List<Property> properties) {
		this.properties = properties;
	}

	public String getInterfaceName() {
		return interfaceName;
	}

	public void setInterfaceName(String interfaceName) {
		this.interfaceName = interfaceName;
	}

	public Property getProperty() {
		return property;
	}

	public void setProperty(Property property) {
		this.property = property;
	}

	public String getClassComment() {
		return classComment;
	}

	public void setClassComment(String classComment) {
		this.classComment = classComment;
	}

}
